<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Text Box and Send Button</title>
    <style>
        /* 基本样式设置 */
        body {
            font-family: Arial, sans-serif;
            background: linear-gradient(to right, #fbc2eb, #a6c0fe);
            /* 渐变背景 */
            margin: 0;
            padding: 20px;
            display: flex;
            justify-content: center;
            align-items: center;
            height: 100vh;
        }

        /* 容器样式 */
        .container {
            background-color: #fff;
            border-radius: 12px;
            /* 增加圆角 */
            box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
            /* 增加阴影 */
            padding: 30px;
            /* 增加内边距 */
            width: 100%;
            max-width: 500px;
        }


        /* 标题样式 */
        /* 标题样式 */
        h1 {
            font-size: 28px;
            margin: 0;
            padding-bottom: 15px;
            /* border-bottom: 3px solid #007bff; */
            color: #333;
            text-align: center;
            /* 居中对齐标题 */
            font-weight: 700;
            /* 加粗字体 */
            text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1);
            /* 添加文字阴影 */
        }

        /* 文本框样式 */
        #textBox {
            width: calc(100% - 120px);
            /* 计算宽度，留出按钮的位置 */
            padding: 10px;
            border: 1px solid #ddd;
            border-radius: 4px;
            font-size: 16px;
            margin-right: 10px;
            /* 给按钮留出间隔 */
        }

        /* 发送按钮样式 */
        #sendButton {
            padding: 10px 20px;
            border: none;
            border-radius: 4px;
            background-color: #007bff;
            color: #fff;
            font-size: 16px;
            cursor: pointer;
            transition: background-color 0.3s;
        }

        #sendButton:hover {
            background-color: #0056b3;
            /* 鼠标悬停时改变按钮颜色 */
        }

        /* 结果区域样式 */
        #results {
            margin-top: 20px;
        }

        /* 结果项样式 */
        #results div {
            padding: 10px;
            border-bottom: 1px solid #ddd;
        }

        #results div:last-child {
            border-bottom: none;
            /* 最后一项不显示下边框 */
        }
    </style>
</head>

<body>
    <div class="container">
        <!-- 页面标题 -->
        <h1>候选词推荐</h1>
        <!-- 输入框和发送按钮 -->
        <div style="display: flex; align-items: center;">
            <input type="text" id="textBox" placeholder="Type here...">
            <button id="sendButton">Send</button>
        </div>
        <!-- 显示结果的区域 -->
        <div id="results"></div>
    </div>

    <script>
        // 获取DOM元素
        const textBox = document.getElementById('textBox');
        const sendButton = document.getElementById('sendButton');
        const results = document.getElementById('results');

        // 定义获取数据的函数
        function fetchData(query) {
            // 使用 fetch API 向指定服务端发送 POST 请求
            fetch('http://192.168.6.211:1234/kandy/candidateWords', {
                method: 'POST',
                headers: {
                    'Content-Type': 'text/plain', // 设置内容类型为纯文本
                },
                body: query // 直接将查询字符串作为请求体发送
            })
                .then(response => response.text()) // 解析为文本
                .then(data => {
                    try {
                        // 解析字符串为 JSON 数组
                        const parsedData = JSON.parse(data);

                        // 确保解析结果是一个数组
                        if (Array.isArray(parsedData)) {
                            // 将数据展示到页面
                            results.innerHTML = parsedData.map(item => `<div>${item}</div>`).join('');
                        } else {
                            results.innerHTML = 'NO Recommand. ..';
                        }
                    } catch (error) {
                        // JSON 解析错误处理
                        results.innerHTML = 'NOthing ...';
                    }
                })
                .catch(error => {
                    // 错误处理
                    results.innerHTML = 'NO Recommand err.';
                });
        }

        // 监听文本框内容变化事件
        textBox.addEventListener('input', () => {
            fetchData(textBox.value);
        });

        // 监听发送按钮点击事件
        sendButton.addEventListener('click', () => {
            fetchData(textBox.value);
        });
    </script>


</body>

</html>